{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\fixes.py:313: FutureWarning: numpy not_equal will not check object identity in the future. The comparison did not return the same result as suggested by the identity (`is`)) and will change.\n",
      "  _nan_object_mask = _nan_object_array != _nan_object_array\n"
     ]
    }
   ],
   "source": [
    "import time\n",
    "import numpy as np\n",
    "import xgboost as xgb\n",
    "from xgboost import plot_importance,plot_tree\n",
    "from sklearn.datasets import load_iris\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.datasets import load_boston\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import os\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 基于XGBoost原生接口的分类问题"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 加载样本数据集\n",
    "iris = load_iris()\n",
    "X,y = iris.data,iris.target\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234565) # 数据集分割"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 训练算法参数设置\n",
    "params = {\n",
    "    # 通用参数\n",
    "    'booster': 'gbtree', # 使用的弱学习器,有两种选择gbtree（默认）和gblinear,gbtree是基于\n",
    "                        # 树模型的提升计算，gblinear是基于线性模型的提升计算\n",
    "    'nthread': 4, # XGBoost运行时的线程数，缺省时是当前系统获得的最大线程数\n",
    "    'silent':0, # 0：表示打印运行时信息，1：表示以缄默方式运行，默认为0\n",
    "    'num_feature':4, # boosting过程中使用的特征维数\n",
    "    'seed': 1000, # 随机数种子\n",
    "    # 任务参数\n",
    "    'objective': 'multi:softmax', # 多分类的softmax,objective用来定义学习任务及相应的损失函数\n",
    "    'num_class': 3, # 类别总数\n",
    "    # 提升参数\n",
    "    'gamma': 0.1, # 叶子节点进行划分时需要损失函数减少的最小值\n",
    "    'max_depth': 6, # 树的最大深度，缺省值为6，可设置其他值\n",
    "    'lambda': 2, # 正则化权重\n",
    "    'subsample': 0.7, # 训练模型的样本占总样本的比例，用于防止过拟合\n",
    "    'colsample_bytree': 0.7, # 建立树时对特征进行采样的比例\n",
    "    'min_child_weight': 3, # 叶子节点继续划分的最小的样本权重和\n",
    "    'eta': 0.1, # 加法模型中使用的收缩步长   \n",
    "    \n",
    "}\n",
    "plst = params.items()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 数据集格式转换\n",
    "dtrain = xgb.DMatrix(X_train, y_train)\n",
    "dtest = xgb.DMatrix(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 迭代次数，对于分类问题，每个类别的迭代次数，所以总的基学习器的个数 = 迭代次数*类别个数\n",
    "num_rounds = 50\n",
    "model = xgb.train(plst, dtrain, num_rounds) # xgboost模型训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 对测试集进行预测\n",
    "y_pred = model.predict(dtest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuarcy: 96.67%\n"
     ]
    }
   ],
   "source": [
    "# 计算准确率\n",
    "accuracy = accuracy_score(y_test,y_pred)\n",
    "print(\"accuarcy: %.2f%%\" % (accuracy*100.0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n/wM1Jb6qbX+igwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x680b8d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 显示重要特征\n",
    "plot_importance(model)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xa1d1d30>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nHsTFxbFv3z5cXV1JT09nw4YNABw+fBhQflF07dr1pu0fPHiQcePG3XLfKpWKl1566a5fg5z5SaqJ\nZHKvZsLDw1m5ciU6nc4ylvqduHbtGteuXUOv15OQkEBaWhojR44kLS0NgJCQECIjI0ut4+joSFhY\nmOV+SdUNKCeHjRs3WhL722+/zXvvvQco9fgqlQpvb2/L8w8cOEBeXh5du3YlJSXllieEO7F//345\n3oxUI8nkXs00bNiQ+vXrc/Xq1VtOjPFPNm3axJAhQxgyZAg7d+4kMDCQOXPmWP7v4+ODh4dHmbfX\nt29flixZYrn/8MMPl/r/Xxtcg4ODWb9+Pba2tnTs2PGO9vVXJpOJd955h7fffrvc25CkqkqOLVMN\n7dq1i82bN/Pxxx9X+yEH/s62bdv48MMP2b17txxnRqo25NgyNViXLl1IT09n6dKlNbYxMT8/n6VL\nl7J69WqZ2KUaSR711ZCzszPfffcdGzZsYO/evTUuwaelpdG3b19GjBhBvXr1rB2OJFmFTO7VlKOj\nI4sXL+btt9/mm2++wWQyWTuk++Ly5ctMnDiRKVOm8Pjjj1s7HEmyGpncq7FmzZqxZcsW1q1bx6xZ\ns9BoNFixjeWeMhgM/P777/Tp04eRI0cyZswY7O3trR2WJFmNTO7VnKenJz///DMuLi48+uijbNq0\nqdol+MTERJ566im+/fZbNmzYwNixY2vMEMeSdDuyt0wNcuzYMV544QWCg4N54403CA4OLldf+MpA\nCEFKSgpr165l+fLljBkzhpdfflmW1qVqr6y9ZWpuP7kaqF27dvz5559EREQwffp0zGYzEyZM4OGH\nH7YM+FUVnDt3joULF3Lq1ClGjhzJ2rVradSokSytS9INZMm9Btu1axcLFizAYDAwaNAg+vXrR6NG\njfDw8KhUibK4uJiUlBROnz7NunXriI2NZcSIETz33HMVPo6OJFV2ZS25y+Rew5lMJhISEjh16hRr\n167l3LlztGnThocffpjw8HDLsLz3m9lsJiYmhg0bNrBz505sbGzo168fDz74IEFBQXh6elaqE5Ak\n3S8yuUvlkpWVxaZNm/j11y3s329P5862tG7dmDZt2lCvXj3UajWenp64urri7Ox8VwlWr9dTUFBA\nXl4e2dnZaDQazsfEYNy/nw2XL4OjIz179mTo0KGEhYXV6KttJamErHOXysXLy4unn34aL69x5Oaa\n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\nL+T/AS/o5CFfFTMQAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x4351be0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化树的生成情况，num_trees是树的索引\n",
    "plot_tree(model, num_trees=5) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将基学习器输出到txt文件中\n",
    "model.dump_model(\"model1.txt\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 基于XGBoost原生接口的回归问题 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 加载数据集\n",
    "boston = load_boston()\n",
    "# 获取特征值和目标指\n",
    "X,y = boston.data,boston.target\n",
    "# 获取特征名称\n",
    "feature_name = boston.feature_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 划分数据集\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 参数设置\n",
    "params = {\n",
    "        'booster': 'gbtree',\n",
    "        'objective': 'reg:gamma', # 回归的损失函数，gmma回归\n",
    "        'gamma': 0.1,\n",
    "        'max_depth': 5,\n",
    "        'lambda': 3,\n",
    "        'subsample': 0.7,\n",
    "        'colsample_bytree': 0.7,\n",
    "        'min_child_weight': 3,\n",
    "        'silent': 1,\n",
    "        'eta': 0.1,\n",
    "        'seed': 1000,\n",
    "        'nthread': 4,\n",
    "    }\n",
    "plst = params.items()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 数据集格式转换\n",
    "dtrain = xgb.DMatrix(X_train, y_train,feature_names = feature_name)\n",
    "dtest = xgb.DMatrix(X_test,feature_names = feature_name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 模型训练\n",
    "num_rounds = 30\n",
    "model = xgb.train(plst, dtrain, num_rounds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 模型预测\n",
    "y_pred = model.predict(dtest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n5c2UFXLlzZQVcuXNlLVbLkRmZlaUe0RmZtaWe0RmZtYXXIhqJtt8cKa8mbJCrryZskKuvJmydsuF\nyMzMinKPyMzM2nKPyMzM+oILUc1kmw/OlDdTVsiVN1NWyJU3U9ZuuRCZmVlR7hGZmVlb7hGZmVlf\ncCGqmWzzwZnyZsoKufJmygq58mbK2i0XIjMzK8o9IjMza8s9IjMz6wsuRDWTbT44U95MWSFX3kxZ\nIVfeTFm75UJkZmZlRcSEL8AM4DvAHcC1wKXAi4DVwPXALcACYINq/32A71eXDwfWAvu23N4h1bo3\nD3N/4cWLFy8ZlxkzZkUpQLR7TR1pAXYGbqD5Wn4D8CfgmJGuM5UyLgLOiYjDACTtRrM4/SYi9pA0\nBbgCeDvNggXNf5ShnzcBhwJXVusOBZaNfJcx8mYzsxpaubLn5wqMq4j4NbA7QPVavoLma/6wJnxq\nTtKrgSci4qyhdRFxM3BPy3gt8Atgh2Fu5qfAKyRtIGkz4IWMWoiyaJQOMEaN0gHGoFE6wBg1SgcY\ng0bpAGPUKB2gX7wG+G1E3DPSTiV6RC8Blg6zTQCSNgb2AhYPs18APwZeDxwMXDLOGc3MbP29g2dm\ntYZVampuOC+QdD2wE3BpRNwyzH4BLASOBaYBHwE+NfJNHw7Mri5vCcwBBqpxo/pZh/FAzfKMNh6o\nWR6Py40ZZXvdxoyyvS7j5plzAwMDT18GejJuNBosWLAAgNmzZ7M+JG0IHAR8YtR9Y4Lf6ClpX+Dk\niNhnnfWzaJ6Q8FJJWwNLgI9GxKWS9gE+EhEHSXoP8LKIOEbSMuDRiHilpHOq61/Y5j7DPSIzy0lM\n9Ov00/e8Hm9olXQQ8KGIeP1o+0741FxEXAlsJOnIoXXVyQrPb9nnjzSr6Amj3NzHGfVIKJtG6QBj\n1CgdYAwapQOMUaN0gDFolA4wRo3SAfrBYXQwLQfl3kf0JuC1kn4j6WbgX4H7WneIiIuBTSTtPdyN\nRMQPI+KqoWHP0pqZWcckbUrzRIW/mKFqu3+pQ76J5Kk5M8sr59TcWNTtZIUeynUuvpkZwIwZs0pH\n6Lm++Yifsb47uNQyODhYPMNkzZspa7a8mbJmy7tw4YLSL5891zeFyMzM6qlvekT98DjNzMaTv4/I\nzMz6ggtRzWT77pFMeTNlhVx5M2WFXHkzZe2WC5GZmRXlHpGZmbXlHpGZmfUFF6KayTYfnClvpqyQ\n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\nzKwt94jMzKwvuBDVTLb54Ex5M2WFXHkzZYVceTNl7ZYLkZmZFeUekZmZteUekZmZ9QUXoprJNh+c\nKW+mrJArb6askCtvpqzdciEyM7Oi3CMyM7O23CMyM7O+4EJUM9nmgzPlzZQVcuXNlBVy5c2UtVsu\nRGZmVpR7RGZm1pZ7RGZm1hdciGom23xwpryZskKuvJmyQq68mbJ2y4XIzMyKco/IzMzaco/IzMz6\nggtRzWSbD86UN1NWyJU3U1bIlTdT1m65EJmZWVHuEZmZWVvuEZmZWV8oXogkrZV0asv4I5JOahm/\nX9Jtkm6V9DNJe1frp0i6TtIrW/b9oaS3DHM/XnqwbLXVdr389RhXjUaDFStWsO+++7Lrrruy2267\n8cUvfrF0rGFl6g1kygq58mbK2q3ihQhYA7xZ0lbrbpD0RuAo4H9ExC7AB4FvS9o2ItYCHwLOlLSB\npMOApyLie+3vJpIsgzXI0Pny0EMr2z/dNTV16lROO+00fvnLX3LNNddw5plncvvtt5eOZdbXiveI\nJD0C/AuweUR8WtJHgM0i4jOSfgKcGBFXtex/CkBEnFyNvwz8ETgMeE1E3NXmPqL5wmnjT5T+HVof\nhxxyCEcffTT77bdf6ShmtdNPPaIAzgTeKWnzdbbtCly/zrql1fohJwDHAd9uV4TMhrN8+XKWLVvG\nXnvtVTqKWV+bWjoAQEQ8KukbwLHA42O8+j7Aw8BLRt7tcGB2dXlLYA4wUI0b1c86jIcu1yXP6OOh\nOeyBgXqPh9Y1Gg0ef/xxTjzxRM444wyuu+66WuQbKW8d8ow0XrZsGccdd1xt8kymvPPnz2fOnDkT\ncn+NRoMFCxYAMHv2bCZMRBRdgFXVz+nAXcBJwEnVup8AA+vsfwpwSnV5M+BXwM7AEuCAYe4jIJIs\ngzXIMJaFyGJwcDAiIp588snYf//9Y/78+WUDjWIobwaZskbkylsya/X/u+d1oBY9oojYvLr8eeBQ\n4Oxo9ojmAp+mWWAelDQHuBh4RUTcX+2/JiJOqrYtBF4aEU+scx/uEfVMvh7RvHnz2GabbTjttNNK\nRzGrtX7rEQ3538DWQ+si4vvA14H/lHQr8BXgnVUR2gU4GPhste8yYDHw8QnMbsksWbKE8847jyuv\nvJLdd9+dPfbYg8WLF5eOZdbXih8RTYRcR0QNnunFZJDniKjRaDw9L55BpryZskKuvCWzTtQRUS1O\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa22ce48>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 显示重要特征\n",
    "plot_importance(model,importance_type =\"weight\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xa468c18>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nSUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa4bb908>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化树的生成情况，num_trees是树的索引\n",
    "plot_tree(model, num_trees=17) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 将基学习器输出到txt文件中\n",
    "model.dump_model(\"model2.txt\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 基于sklearn的接口实现分类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 加载样本数据集\n",
    "iris = load_iris()\n",
    "X,y = iris.data,iris.target\n",
    "# 获取特征名称\n",
    "feature_name = iris.feature_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 数据分割\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=3) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,\n",
       "       colsample_bynode=1, colsample_bytree=1,\n",
       "       feature_names=['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'],\n",
       "       gamma=0, learning_rate=0.1, max_delta_step=0, max_depth=5,\n",
       "       min_child_weight=1, missing=None, n_estimators=50, n_jobs=1,\n",
       "       nthread=None, objective='multi:softprob', random_state=0,\n",
       "       reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=None,\n",
       "       silent=True, subsample=1, verbosity=1)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 模型训练\n",
    "model = xgb.XGBClassifier(max_depth=5, n_estimators=50, silent=True, objective='multi:softmax',feature_names=feature_name)\n",
    "model.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 预测\n",
    "y_pred = model.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuarcy: 100.00%\n"
     ]
    }
   ],
   "source": [
    "# 计算准确率\n",
    "accuracy = accuracy_score(y_test,y_pred)\n",
    "print(\"accuarcy: %.2f%%\" % (accuracy*100.0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xa4e65c0>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n5kmv/lZGmwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa4eb7f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 显示重要特征\n",
    "plot_importance(model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xacfd080>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x9fb30b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化树的生成情况，num_trees是树的索引\n",
    "plot_tree(model, num_trees=5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 基于sklearn的接口的回归问题"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 获取数据\n",
    "boston = load_boston()\n",
    "X,y = boston.data,boston.target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 数据集划分\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "XGBRegressor(base_score=0.5, booster='gbtree', colsample_bylevel=1,\n",
       "       colsample_bynode=1, colsample_bytree=1, gamma=0,\n",
       "       importance_type='gain', learning_rate=0.1, max_delta_step=0,\n",
       "       max_depth=5, min_child_weight=1, missing=None, n_estimators=50,\n",
       "       n_jobs=1, nthread=None, objective='reg:gamma', random_state=0,\n",
       "       reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=None,\n",
       "       silent=True, subsample=1, verbosity=1)"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 模型训练\n",
    "model = xgb.XGBRegressor(max_depth=5, learning_rate=0.1, n_estimators=50, silent=True, objective='reg:gamma')\n",
    "model.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 预测\n",
    "y_pred = model.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa01c4e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 显示重要特征\n",
    "plot_importance(model)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xa0af128>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa01c4a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化树的生成情况，num_trees是树的索引\n",
    "plot_tree(model, num_trees=17) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
